<?php

namespace dali;

use PHPMailer\PHPMailer\PHPMailer;

include "vendor/autoload.php";

class Send
{
    private $config;

    public function __construct($configs = [])
    {
        $this->config['email'] = $configs[0] ?? '';
        $this->config['code'] = $configs[1] ?? '';
    }

    /**
     * @param $send_name
     * @param $to_email
     * @param $title
     * @param $content
     * @return string
     * @throws \PHPMailer\PHPMailer\Exception
     */
    public function send($send_name, $to_email, $title = '标题', $content = '内容')
    {

        if (empty($this->config['code']) || empty($this->config['email'])) {
            return "初始化配置有误！";
        }
        $mail = new PHPMailer(true);
        //使用smtp鉴权方式发送邮件
        $mail->isSMTP();
        //smtp需要鉴权 这个必须是true
        $mail->SMTPAuth = true;
        // qq 邮箱的 smtp服务器地址，这里当然也可以写其他的 smtp服务器地址
        $mail->Host = 'smtp.qq.com';
        //smtp登录的账号 这里填入字符串格式的qq号即可
        $mail->Username = $this->config['email'];
        // 这个就是之前得到的授权码，一共16位
        $mail->Password = $this->config['code'];
        $mail->setFrom($this->config['email'], $send_name);// 这里商户一定要和Username上面的一样
        // $to 为收件人的邮箱地址，如果想一次性发送向多个邮箱地址，则只需要将下面这个方法多次调用即可
        if (is_array($to_email)) {
            foreach ($to_email as $v) {
                $mail->addAddress($v);
            }
        } else {
            $mail->addAddress($to_email);
        }
        // 该邮件的主题
        $mail->Subject = $title;
        // 该邮件的正文内容
        $mail->Body = $content;
        // 使用 send() 方法发送邮件
        if (!$mail->send()) {
            return '发送失败: ' . $mail->ErrorInfo;
        } else {
            return "发送成功";
        }
    }
}